#include <stdlib.h>
#include "linkedlist.h"
#include "linkedstack.h"

/*
 * Public functions
 */

LinkedStack LS_New() {	
	return LL_New();	
}

void LS_Free(LinkedStack stack) {
	LL_Free(stack);
}

int LS_Size(LinkedStack stack) {	
	return LL_Size(stack);
}

int LS_Empty(LinkedStack stack) {
	return !LL_Size( stack );
}

void LS_Push(LinkedStack stack, void *el) {
	LL_Add(stack, LL_Begin(stack), el);
}

void LS_Pop(LinkedStack stack) {
	LL_Remove(stack, LL_Begin(stack));
}

void *LS_Top(LinkedStack stack) {		
	return LL_Get(stack, LL_Begin(stack));
}
